(function(){
	
	var dj = {
			/**
			 * 弹出输入提示框
			 * @param content  内容
			 * @param title 标题
			 * @param callback 回调函数
			 */
			prompt:function(content,title,callback,defaultValue){
				var tpl = '<div class="modal fade">'+
							'<div class="modal-dialog">'+
								'<div class="modal-content">'+
									'<div class="modal-header">'+
						        		'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'+
						        		'<h3 class="modal-title">'+title+'</h3>'+
						        	'</div>'+
									'<div class="modal-body"><p>'+content+
									'</p><p><input type="text" class="span8"/></p>'+	
									'</div>'+
									'<div class="modal-footer">'+
										'<a class="btn btn-default" href="#" data-dismiss="modal">取消</a>'+
										'<a href="#" class="btn btn-primary" data-action="1">确定</a>'+
									'</div>'+
								'</div>'+
							'</div>'+
						   '</div>';
				
				var el = $(tpl);
				el.appendTo(document.body);
				el.on('hidden.bs.modal',function(){
					el.remove();
				});
				if(defaultValue){
					el.find('input').val(defaultValue);
				}
				el.modal('show');
				
				el.find('.btn-primary').click(function(){
					var val = el.find('input').val();
					if(callback){
						if(callback.call(this,val)){
							el.modal('hide');
						}
					}
					else
					{
						el.modal('hide');
					}
				});
			},
			/**
			 * 确认对话框
			 * @param content 内容
			 * @param title 标题
			 * @param callback 点击确定回调函数
			 */
			confirm:function(content,title,callback){
				
				var tpl = '<div class="modal fade">'+
							  '<div class="modal-dialog">'+
							    '<div class="modal-content">'+
							      '<div class="modal-header">'+
							        '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'+
							        '<h4 class="modal-title">'+title+'</h4>'+
							      '</div>'+
							      '<div class="modal-body">'+
							        '<p>'+content+'</p>'+
							      '</div>'+
							      '<div class="modal-footer">'+
							        '<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>'+
							        '<button type="button" class="btn btn-primary">确定</button>'+
							      '</div>'+
							    '</div>'+
							  '</div>'+
							'</div>';
				
				var modalEl = $(tpl);
				
				modalEl.appendTo(document.body);
				
				modalEl.modal('show');
				
				modalEl.on('hidden.bs.modal',function(){
					modalEl.remove();
				});
				
				modalEl.find(".btn-primary").on('click',function(){
					modalEl.modal('hide');
					if(callback){
						callback.call(this);
					}
				});
				
			},
			/**
			 * 提示框
			 * @param content 提示内容
			 * @param title   提示标题
			 * @param callback 回调函数
			 */
			alert:function(content,title,callback){
				var tpl = '<div class="modal fade">'+
				  '<div class="modal-dialog">'+
				    '<div class="modal-content">'+
				      '<div class="modal-header">'+
				        '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'+
				        '<h4 class="modal-title">'+title+'</h4>'+
				      '</div>'+
				      '<div class="modal-body">'+
				        '<p>'+content+'</p>'+
				      '</div>'+
				      '<div class="modal-footer">'+
				        '<button type="button" class="btn btn-primary">确定</button>'+
				      '</div>'+
				    '</div>'+
				  '</div>'+
				'</div>';
	
				var modalEl = $(tpl);
				
				modalEl.appendTo(document.body);
				
				modalEl.modal('show');
				
				modalEl.on('hidden.bs.modal',function(){
					if(callback){
						callback.call(this);
					}
					modalEl.remove();
				});
				
				modalEl.find(".btn-primary").on('click',function(){
					modalEl.modal('hide');
				});
				
			}
	};
	
	window.dj = dj;
	
})();

$(function(){
	
	$("form").hide();
	
	$('.tree li:has(ul)').addClass('parent_li').find(' > span');//.attr('title', 'Collapse this branch');
    
	//点击菜单名称
	$('.tree li > .node').on('click', function (e) {
        
		e.stopPropagation();
		$("form").hide();
		
		var li = $(this).parent();
		
		var children = li.find('ul > li');
		
		if(children.length == 0){
			$('input[name=btnId]').val(li.attr('id'));
			$('input[type=radio]').prop('checked',false);
	        
			var type = li.attr('data-type');
			var key  = li.attr('data-key');
			var url  = li.attr('data-url');
			
			if(type == 'click'){
				if(key == 'drivers'){
		    		$('input[value=drivers]').prop('checked',true);
		    	}
		    	else if(key == 'myaccount'){
		    		$('input[value=myaccount]').prop('checked',true);
		    	}
		    	else if(key == 'myorder'){
		    		$('input[value=myorder]').prop('checked',true);
		    	}
		    	else if(key == 'price'){
		    		$('input[value=price]').prop('checked',true);
		    	}
		    	else if(key == 'text'){
		    		$('input[value=text]').prop('checked',true);
		    	}
		    	else if(key == 'ConsumerManager'){
		    		$('input[value=ConsumerManager]').prop('checked',true);
		    	}
			}
			else
			{
				$('input[value=link]').prop('checked',true);
	    		$('input[value=link]').next().val(url);
			}
			$('form').show();
		}
	});
    
	
    $('a').tooltip();
    
    $('.menu_add').click(function(){
    	
    	dj.prompt('菜单的名称不多于4个汉字或8个字母：','添加菜单',function(value){
    		
    		$.post('createWxButton',{'name':value},function(data){
    			
    			if(data.success){
    				var tpl = '<li id="'+data.object.id+'">'+
    					'<span class="node">'+data.object.name+'</span>'+
    					'<span class="menu_first addmenu"> <a href="#" data-toggle="tooltip" title="添加菜单"><i class="icon-plus"></i></a></span>'+
    					'<span class="menu_opt modify"><a href="#" data-toggle="tooltip" title="修改名称"><i class="icon-pencil"></i></a></span>'+
    					'<span class="menu_opt remove"><a href="#" data-toggle="tooltip" title="删除菜单"><i class="icon-remove"></i></a> </span>'+
    					'</li>';
    				
    				$(".tree").find('ul').first().append($(tpl));
    				
    				$(".addmenu").off().on('click',addFunc);
	    			$(".modify").off().on('click',modifyFunc);
	    			$(".remove").off().on('click',removeFunc);
    			}
    			else
    			{
    				//失败
    				dj.alert(data.message,'失败');
    			}
    			
    		},'json');
    		
    		return true;
    	});
    	
    });
    
   
    function addFunc(e){
    	
    	var el =$(this).parent('li');
    	
    	dj.prompt('菜单的名称不多于4个汉字或8个字母：','添加子菜单',function(value){
    		
    		$.post('createWxButton',{'name':value,'parentID':el.attr('id')},function(data){
    			
    			if(data.success){
    				if(el.hasClass('parent_li')){
    	    			var tpl = '<li id="'+data.object.id+'">'+
    	    						'<span class="node">'+data.object.name+'</span>'+
    	        					'<span class="menu_first modify"><a href="#" data-toggle="tooltip" title="修改名称"><i class="icon-pencil"></i></a></span>'+
    	        					'<span class="menu_opt remove"><a href="#" data-toggle="tooltip" title="删除菜单"><i class="icon-remove"></i></a> </span>'+
    	        				   '</li>';
    	    			el.find('ul').append($(tpl));
    	    		}
    	    		else
    	    		{
    	    			var tpl = '<ul><li id="'+data.object.id+'">'+
									'<span class="node">'+data.object.name+'</span>'+
			    					'<span class="menu_first modify"><a href="#" data-toggle="tooltip" title="修改名称"><i class="icon-pencil"></i></a></span>'+
			    					'<span class="menu_opt remove"><a href="#" data-toggle="tooltip" title="删除菜单"><i class="icon-remove"></i></a> </span>'+
			    				   '</li></ul>';
    	    			el.append($(tpl));
    	    			el.addClass('parent_li');
    	    		}
    				
    				$(".addmenu").off().on('click',addFunc);
	    			$(".modify").off().on('click',modifyFunc);
	    			$(".remove").off().on('click',removeFunc);
    			}
    			else
    			{
    				//失败
    				dj.alert(data.message,'失败');
    			}
    			
    		},'json');
    		
    		return true;
    	});
    }
    
    $(".addmenu").on('click',addFunc);
	
    function modifyFunc(e){
    	var li = $(this).parent('li');
    	var el =li.find('.node').first();
    	
    	dj.prompt('修改菜单','菜单的名称不多于4个汉字或8个字母：',function(value){
    		
    		$.post('modifyWxButton',{'name':value,'id':li.attr('id')},function(data){
    			
    			if(data.success){
    				el.html(data.object.name);
    			}
    			else
    			{
    				//失败
    				dj.alert(data.message,'失败');
    			}
    		},'json');
    		
    		return true;
    	},el.html());
    }
    
    $(".modify").on('click',modifyFunc);
    
    function removeFunc(e){
    	
    	var li = $(this).parent('li');
    	
    	dj.confirm("删除后菜单下设置的消息将不会被保存","确认", function(){
    		
    		$.post('removeWxButton',{'id':li.attr('id')},function(data){
    			
    			if(data.success){
    				li.remove();
    			}
    			else
    			{
    				dj.alert(data.message,'失败');
    			}
    			
    		},'json');
    		
    	});
    }
    
    $(".remove").on('click',removeFunc);
    
    $('input[type=radio]').click(function(){
    	
    	var nodeId = $('input[name=btnId]').val();
    	if(!nodeId){
    		return;
    	}
    	var li = $("#"+nodeId);
    	
    	var value = $(this).attr('value');
    	
    	var params = {
    		'id':nodeId,
    		'type':'click',
    		'key':'',
    		'url':'',
    		'message':''
    	};
    	
    	if(value == 'drivers'){
    		params.key = 'drivers';
    	}
    	else if(value == 'myaccount'){
    		params.key = 'myaccount';
    	}
    	else if(value == 'myorder'){
    		params.key = 'myorder';
    	}
    	else if(value == 'price'){
    		params.key = 'price';
    	}
    	else if(value == 'ConsumerManager'){
    		params.key = 'ConsumerManager';
    	}
    	else if(value == 'text'){
    		var val = $.trim($(this).next().val());
    		if(val == ''){
    			dj.alert('请先输入消息内容','提示');
    			return ;
    		}
    		params.key = 'text';
    		params.message = val;
    	}
    	else if(value == 'link'){
    		var val = $.trim($(this).next().val());
    		if(val == ''){
    			$(this).removeAttr('checked');
    			dj.alert('请先输入链接地址','提示');
    			return ;
    		}
    		params.type='view';
    		params.url = val;
    	}
    	
    	$.post('setWxButton',params,function(data){
    		
    		if(data.success){
    			
    			li.attr('data-type',data.object.type);
    			li.attr('data-key',data.object.key);
    			li.attr('data-url',data.object.url);
    			
    			dj.alert('设置成功','提示');
    		}
    		else
    		{
    			dj.alert('设置失败','提示');
    		}
    		
    	},'json');
    });
    
    
    $(".publish").on('click',function(){
    	
    	dj.confirm("确定发布菜单", "确认", function(){
    		
    		$.post('publishWxMenu',null,function(data){
    			
    			dj.alert(data.message,'提示');
    			
    		},'json');
    		
    	});
    	
    });
    
});